[レポート] Amazon Auroraで費用対効果の高いRAGベースのAIアプリケーションを構築する #AWSreInvent

[レポート] Amazon Auroraで費用対効果の高いRAGベースのAIアプリケーションを構築する #AWSreInvent

はじめに

データ事業本部の小澤です。
re:Invent2024で3回目のChalk Talkセッションに参加してきました!

今回参加したセッションのタイトルは「Build a cost-effective RAG-based gen AI application with Amazon Aurora」です。こちらのセッションはREPEATのセッションでしたが、立ち見の方も何人かいましたので注目度は高そうでした。

セッション概要

IMG_0436.jpg

DAT313: Build a cost-effective RAG-based gen AI application with Amazon Aurora

Speakers:

  • Shayon Sanyal, Principal WW SSA PostgreSQL, Amazon Web Services, Inc.
  • Jim Mlodgenski, Senior Principal Engineer, Amazon Web Services

セッション概要

In this chalk talk, explore key design considerations for building cost-effective generative AI applications. Learn about model selection and optimization techniques, focusing on strategies for optimizing the Retrieval Augmented Generation (RAG) architecture. Additionally, learn about implementing efficient data storage and retrieval methods using Amazon Aurora. Discover prompt engineering best practices and effective monitoring and cost-tracking approaches along the way to help ensure the overall cost-effectiveness of your generative AI solution.

日本語訳

このチョークトークでは、費用対効果の高いジェネレーティブAIアプリケーションを構築するための重要な設計上の考慮点を探ります。Retrieval Augmented Generation (RAG)アーキテクチャを最適化するための戦略を中心に、モデルの選択と最適化のテクニックについて学びます。さらに、Amazon Auroraを使用した効率的なデータストレージと検索方法の実装についても学びます。ジェネレーティブAIソリューションの全体的な費用対効果を確保するための、迅速なエンジニアリングのベストプラクティス、効果的なモニタリングとコスト追跡のアプローチについて学びます。

セッション内容

アジェンダです。

IMG_0437.jpg

最初にセッションで仮定しているWorkloadについて説明がありました。

IMG_0439.jpg

続いて、このWorkloadで想定される月額費用の内訳です。
生成AIのinput/outputトークンにかかる料金が全体の95%になっており、ここに対して最適化を考えていく必要があると説明がありました。

IMG_0441.jpg

Model choice and prompt design

コストの大部分を占めていたLLMのコストから手を付けます。このパートで強調されていたのは、アプリケーションの用途によっては小さなLLMモデルであっても、大きいモデルとそう変わらない内容のレスポンスを返してくれることもあるため、1つのアプリケーションでも用途別に使用するモデルを変更することで、大きなコストダウンに繋がることもあるということでした。

IMG_0443.jpg

旅行会社のチャットボットを例にClaude 3.5 Sonnet V2とClaude 3 Haikuに対して同じ質問をしてレスポンスを比較していました。

IMG_0444.jpg

8つのプロンプト最適化が軽く紹介されました。

IMG_0445.jpg

Retrieval Augmented Generation(RAG) optimization

チャンクサイズは小さすぎても大きすぎてもよくないという説明がありました。
このあたりはアプリケーションによるため試行錯誤が必要だということでした。本セッションでは、アプリケーションの用途に合わせて試行錯誤しながら目的にとって最適な設定を調整していくことが重要と繰り返し語られていました。
IMG_0449.jpg

IMG_0451.jpg

Caching and memory management

実装するのは結構大変という話でしたが、過去の利用パターンを分析してキャッシュをうまく活用することでコスト削減ができるということです。
チャットボットが回答する際、ユーザーが質問をタイプしている際にキーワードを拾って、フロントエンド側で頻繁に聞かれる質問を候補に挙げることで、ユーザーにキャッシュ済みの質問を選択しやすいようにするというテクニックが紹介されていました。

IMG_0454.jpg

ここで参加者からPostgreSQL以外でも良いのかという質問がありましたが、ベクトルDBであればOKという回答がありました。

IMG_0455.jpg

Architectural and infrastructure optimization

バッチ推論を使用することで50%のコストを削減が可能という説明がありました。セマンティックキャッシュに対してはバッチ推論を使用することでコスト削減ができそうです。

IMG_0462.jpg

AuroraのインスタンスサイズはLLMのコストと比較すると小さく、見積が立てやすいので、大きめのインスタンスを選択しておいて、様子を見ながら調整するのがよいという説明がありました。

IMG_0458.jpg

Assessing RAG effectiveness

構築後は必ず各指標をモニターして適切なバランスを見つけていく必要があります。このあたり参加者の方からいくつか質問出てたのですが、専門的だったのと声が小さくて聞き取れませんでした。
IMG_0465.jpg

以上、Chalk Talkの模様をお伝えしました!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.